﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Application.Admin.Dto
{
    #region para dto

    /// <summary>
    /// 
    /// </summary>
    /// <remarks></remarks>
    public class OpenOperUser
    {
        /// <summary>
        /// Gets or sets the name of the oper.
        /// </summary>
        /// <value>The name of the oper.</value>
        /// <remarks></remarks>
        public string OperName { get; set; }

        /// <summary>
        /// Gets or sets the oper PWD.
        /// </summary>
        /// <value>The oper PWD.</value>
        /// <remarks></remarks>
        public string OperPwd { get; set; }

    }

    /// <summary>
    /// 
    /// </summary>
    /// <remarks></remarks>
    public class OpenParaAddSightCommDto : OpenOperUser
    {
        /// <summary>
        /// Gets or sets the sight internal id.
        /// </summary>
        /// <value>The sight internal id.</value>
        /// <remarks></remarks>
        public int SightInternalId { get; set; }

        /// <summary>
        /// Gets or sets the name of the sight.
        /// </summary>
        /// <value>The name of the sight.</value>
        /// <remarks></remarks>
        public string SightName { get; set; }

        /// <summary>
        /// Gets or sets the content.
        /// </summary>
        /// <value>The content.</value>
        /// <remarks></remarks>
        public string Content { get; set; }

        /// <summary>
        /// Gets or sets the name of the user.
        /// </summary>
        /// <value>The name of the user.</value>
        /// <remarks></remarks>
        public string UserName { get; set; }

        /// <summary>
        /// Gets or sets the user id.
        /// </summary>
        /// <value>The user id.</value>
        /// <remarks></remarks>
        public int? UserId { get; set; }

        /// <summary>
        /// Gets or sets the type of the client.
        /// </summary>
        /// <value>The type of the client.</value>
        /// <remarks></remarks>
        public string ClientType { get; set; }

    }

    /// <summary>
    /// 
    /// </summary>
    /// <remarks></remarks>
    public class OpenParaAddSightSiginDto : OpenParaAddSightCommDto
    {

    }

    #endregion

    #region return dto

    #region pic

    public abstract class OpenPicBaseDto
    {
        public int Id { get; set; }

        public string WebFullPath { get; set; }

        public string Name { get; set; }
    }

    public class OpenPicDto : OpenPicBaseDto
    {
    }

    public class OpenPicThumbDto : OpenPicBaseDto
    {
        public int Width { get; set; }

        public int Height { get; set; }

        public virtual int PicId { get; set; }
    }

    #endregion

    #region goods

    public class OpenGoodsDto : Domain.Dto.GoodsDto
    {
        /// <summary>
        /// 最新5条
        /// </summary>
        public List<OpenPicDto> GoodsPics { get; set; }

        /// <summary>
        /// 最新5条
        /// </summary>
        public List<OpenPicThumbDto> GoodsPicThumbs { get; set; }
    }

    #endregion

    #region sight

    public class OpenSightDto
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string Remark { get; set; }

        public double Lat { get; set; }

        public double Lon { get; set; }

        public int ClassId { get; set; }

        public int AreaId { get; set; }

        public int SiginCount { get; set; }

        public int CommCount { get; set; }

        public int InternalId { get; set; }

        public int VouchNum { get; set; }
    }

    public class OpenSightWithOnePicDto : OpenSightDto
    {
        public OpenPicDto SightPic { get; set; }
    }

    public class OpenSightDetailDto : OpenSightDto
    {

        public List<OpenGoodsDto> SightGoods { get; set; }

        /// <summary>
        /// 最新5条
        /// </summary>
        public List<OpenPicDto> SightPics { get; set; }

        /// <summary>
        /// 最新5条
        /// </summary>
        public List<OpenPicThumbDto> SightPicThumbs { get; set; }

        /// <summary>
        /// 最新10条
        /// </summary>
        public List<Domain.Dto.SightPointCommDto> SightComms { get; set; }

        /// <summary>
        /// 最新10条
        /// </summary>
        public List<Domain.Dto.SightPointUserSiginDto> SightSigin { get; set; }

    }

    public class OpenSightCommDto
    {
        public int Id { get; set; }

        public string UserName { get; set; }

        public string Contents { get; set; }

        public DateTime AddTime { get; set; }
    }

    public class OpenSightAllPicDto
    {
        public int Id { get; set; }

        public string ImageName { get; set; }
    }


    #endregion

    #region  article

    public abstract class OpenArticleBaseDto
    {
        public int Id { get; set; }

        public string Title { get; set; }

        public string SubTitle { get; set; }

        public string Remark { get; set; }

        public string CustomDateTime { get; set; }
    }

    public class OpenArticleDto : OpenArticleBaseDto
    {
        public string Url { get; set; }

        public OpenPicDto ArticlePic { get; set; }

        public int SightId { get; set; }

        public string SightName { get; set; }

        public double SightLon { get; set; }

        public double SightLat { get; set; }
    }

    #endregion

    #region tour

    public class OpenTourDefaultDto
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public long Version { get; set; }
    }

    public class OpenTourDetailDto : OpenTourDefaultDto
    {
        public string Remark { get; set; }

        public string CustomDateTime { get; set; }

        public List<OpenTourSightDto> TourSight { get; set; }
    }

    public class OpenTourSightDto
    {
        public int SortNum { get; set; }

        public int SightId { get; set; }

        public string SightName { get; set; }

        public double SightLat { get; set; }

        public double SightLon { get; set; }

        public int SightAreaId { get; set; }

        public string SightPic { get; set; }

        public string Remark { get; set; }

        public string NextTips { get; set; }

        public string CustomDateTime { get; set; }

        public int Day { get; set; }

        public int IsShowInMap { get; set; }
    }

    #endregion

    #region advertise

    public class OpenAdvertiseDto
    {
        public int Id { get; set; }

        public string ImagePath { get; set; }

        public string Url { get; set; }
    }

    #endregion

    #endregion
}
